/*
	Работа с таймерами
*/

#include "defines.h"

volatile U64 SystemTick=0;


/*
	Настройка системного таймера - для генерации тиков, каждые 1мс
*/
void system_timer_init(void)
{
	LPC_SC->PCONP |= (1 << 16);
	LPC_RIT->RICOMPVAL = 24999; //1 мс
  NVIC_EnableIRQ(RIT_IRQn);
	LPC_RIT->RICTRL |= ((0x1<<0)|(0x1<<1));
}

void system_timer_stop(void)
{
	LPC_RIT->RICTRL =0x00;
}


/*
	Обработчик прерываний - RIT Timer
*/
void RIT_IRQHandler (void) 
{  
  
	LPC_RIT->RICTRL |= (0x1<<0);		/* clear interrupt flag */
  SystemTick++;
		
  return;
}

void delay_ms(U16 value)
{
	volatile U64 start=SystemTick;
	while(SystemTick-start<value)
		;
}

